#

| Chapter 2 UNIX Commands |

## join

    join [options] file1 file2

Join the common lines of sorted `file1` and sorted `file2`. (Read standard input if `file1` is -.) The output contains the common field and the remainder of each line from `file1` and `file2`. In the options below, `n` can be 1 or 2, referring to `file1` or `file2`.

### Options

-a`n`

  List unpairable lines in file `n` (or both if `n` is omitted).

-e `s`

  Replace any empty output field with the string `s`.

-j`n m`

  Join on the `m`th field of file `n` (or both files if `n` is omitted).

-o `n.m`

  Each output line contains fields specified by file number `n` and field number `m`. The common field is suppressed unless requested.

-t`c`

  Use character `c` as field separator for input and output.

### Examples

Assuming the following input files:

>     % cat score
>     olga    81      91
>     rene    82      92
>     zack    83      93
>     % cat grade
>     olga    B       A
>     rene    B       A

List scores followed by grades, including unmatched lines:

>     % join -a score grade
>     olga 81 91 B A
>     rene 82 92 B A
>     zack 83 93

Pair each score with its grade:

>     % join -o 1.1 1.2 2.2 1.3 2.3 score grade
>     olga 81 B 91 A
>     rene 82 B 92 A

Reference: ismpx |  | Reference: jsh